<?php
// +----------------------------------------------------------------------
// | 麦沃德科技赋能开发者，助力中小企业发展 
// +----------------------------------------------------------------------
// | Copyright (c) 2017～2024  www.wdadmin.cn    All rights reserved.
// +----------------------------------------------------------------------
// | Wdadmin系统产品软件并不是自由软件，不加密，并不代表开源，未经许可不可自由转售和商用
// +----------------------------------------------------------------------
// | Author: MY WORLD Team <bd@maiwd.cn>   www.wdadmin.cn
// +----------------------------------------------------------------------

namespace app\admin\validate\wddj\marketing;

use think\Validate;

class Coupon extends Validate
{
    /**
     * 验证规则
     */
    protected $rule = [
        'expire_type'=>'require|checkExpireType',
        'discount_price'=>'require|checkDiscountPrice',
    ];
    /**
     * 提示消息
     */
    protected $message = [
        'expire_type.require' => '请选择有效期',
        'discount_price.checkDiscountPrice' => '优惠金额最小0.01',
    ];
    /**
     * 验证场景
     */
    protected $scene = [
        'add'  => ['expire_type','discount_price'],
        'edit' => ['expire_type','discount_price'],
    ];

    protected function checkExpireType($value,$rule,$data)
    {
        if ($value == 1) {
            if (empty($data['expire_day'])) {
                return '领取后有效天数不能为空';
            }
            if(!filter_var($data['expire_day'], FILTER_VALIDATE_INT) !== false) {
                return '领取后有效天数必须为整数';
            }
        }
        if ($value == 2) {
            if (empty($data['expire_start_time'])) {
                return '开始时间时间段不能为空';
            }
            if (empty($data['expire_end_time'])) {
                return '结束时间时间段不能为空';
            }
            if ($data['expire_start_time'] > $data['expire_end_time']) {
                return '开始时间时间段不能大于结束时间时间段';
            }
        }
        return true;
    }

    protected function checkDiscountPrice($value, $rule, $data = [])
    {
        if ($value < 0.01) {
            return false;
        }
        return true;
    }
    
}
